package com.example.scenictourback.service;

import com.example.scenictourback.dto.ScenicAreaDTO;
import com.example.scenictourback.entity.ScenicArea;

import java.util.List;

public interface ScenicAreaService {
    
    /**
     * 获取所有景区列表
     * @return 景区DTO列表
     */
    List<ScenicAreaDTO> listAllScenicAreas();
    
    /**
     * 获取所有开放的景区列表
     * @return 开放的景区DTO列表
     */
    List<ScenicAreaDTO> listOpenScenicAreas();
    
    /**
     * 根据ID获取景区详情
     * @param id 景区ID
     * @return 景区DTO
     */
    ScenicAreaDTO getScenicAreaById(Integer id);
    
    /**
     * 根据名称搜索景区
     * @param name 景区名称
     * @return 景区DTO列表
     */
    List<ScenicAreaDTO> searchScenicAreasByName(String name);
    
    /**
     * 新增景区
     * @param scenicArea 景区信息
     * @return 新增后的景区信息
     */
    ScenicAreaDTO addScenicArea(ScenicArea scenicArea);
    
    /**
     * 更新景区信息
     * @param id 景区ID
     * @param scenicArea 更新的景区信息
     * @return 更新后的景区信息
     */
    ScenicAreaDTO updateScenicArea(Integer id, ScenicArea scenicArea);
    
    /**
     * 删除景区
     * @param id 景区ID
     */
    void deleteScenicArea(Integer id);
    
    /**
     * 获取景区总数
     * @return 景区总数
     */
    Long countScenicAreas();
    
    /**
     * 获取开放景区数量
     * @return 开放景区数量
     */
    Long countOpenScenicAreas();
} 